<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>考勤管理</title>
    <!--vue-->
    <script src="/js/vue.js"></script>
    <!-- 引入样式 -->
    <link rel="stylesheet" href="/css/index.css">
    <!-- 引入组件库 -->
    <script src="/js/index.js"></script>
    <!--axios-->
    <script src="/js/axios.min.js"></script>
</head>
<body>
<div id="app">
    <el-row>
        <el-col :span="5">
            <el-select v-model="deptid" clearable placeholder="请选择部门">
                <el-option
                        v-for="item in depts"
                        :key="item.deptid"
                        :label="item.dname"
                        :value="item.deptid">
                </el-option>
            </el-select>
        </el-col>
        <el-col :span="5"><el-input v-model="ename" placeholder="请输入员工姓名"></el-input></el-col>
        <el-col :span="5"><el-button type="primary" @click="search()" icon="el-icon-search">搜索</el-button></el-col>
    </el-row>
    <el-row>
        <el-table
                :data="tableData"
                style="width: 100%">
            <el-table-column
                    prop="userid"
                    label="员工编号">
            </el-table-column>
            <el-table-column
                    prop="username"
                    label="姓名">
            </el-table-column>
            <el-table-column
                    prop="sex"
                    label="性别">
            </el-table-column>
            <el-table-column
                    prop="dname"
                    label="所属部门">
            </el-table-column>
            <el-table-column
                    prop="telephone"
                    label="联系方式">
            </el-table-column>
            <el-table-column
                    prop="idcard"
                    label="证件号码">
            </el-table-column>
            <el-table-column
                    prop="pname"
                    label="职位">
            </el-table-column>
            <el-table-column
                    prop="signdate"
                    label="打卡时间">
            </el-table-column>
            <el-table-column
                    prop="days"
                    label="本月打卡天数">
            </el-table-column>
            <el-table-column
                    prop="signday"
                    label="应签到天数">
            </el-table-column>
        </el-table>
    </el-row>
    <el-row>
        <el-pagination
                @size-change="handleSizeChange"
                @current-change="handleCurrentChange"
                :current-page="currentPage"
                :page-sizes="[2,3,5,10,100, 200, 300, 400]"
                :page-size="pageSize"
                layout="total, sizes, prev, pager, next, jumper"
                :total="total">
        </el-pagination>
    </el-row>
</div>
<script>
    var vue = new Vue({
        el:"#app",
        data:{//数据
            tableData:[],
            currentPage:1,
            pageSize:5,
            total:20,
            ename:null,
            deptid:null,
            depts:[]
        },
        created:function () {
            this.loadData();
        },
        methods:{//方法
            //加载数据的方法
            loadData:function () {
                _this =this;
                //初始化数据
                axios.get('/emp/empSignPage', {
                    params: {
                        pageNo:this.currentPage,
                        pageSize:this.pageSize,
                        ename:this.ename,
                        deptid:this.deptid
                    }
                }).then(function (response) {
                    //赋值分页列表
                    _this.tableData = response.data.list;
                    //删除最后一页为空时，调到上一页
                    //alert(_this.tableData.length);
                    if(_this.tableData.length==0&&_this.currentPage!=1){
                        _this.currentPage=_this.currentPage-1;
                        _this.loadData();
                    }
                    //赋值总条数
                    _this.total = response.data.total;
                })
                //搜索框部门
                axios.post('/emp/depts').then(function (response) {
                    vue.depts = response.data.list;
                })
            },
            //每页数量发生变化时
            handleSizeChange:function (v) {
                this.pageSize=v;
                this.loadData();
            },
            //当前页数放生变化是
            handleCurrentChange:function (v) {
                this.currentPage=v;
                this.loadData();
            },
            // 搜索方法
            search:function () {
                this.currentPage=1;
                this.loadData();
            }
        }
    });
</script>
</body>
</html>